package main

import "fmt"

/*
*
new 与 make 的区别
1. 二者都是用来做内存分配的。
2. make 只用于 slice、map 以及 channel 的初始化，返回的还是这三个引用类型本身
3. 而 new 用于类型的内存分配，并且内存对应的值为类型零值，返回的是指向类型的指
针
*/
func main() {
	var userinfo map[string]string
	userinfo = make(map[string]string)
	userinfo["username"] = "张三"
	fmt.Println(userinfo)

	a := new(int)
	a2 := new(int32)
	b := new(bool)

	fmt.Printf("%T\n", a)
	fmt.Printf("%T\n", a2)
	fmt.Printf("%T\n", b)

	fmt.Println(*a)
	fmt.Println(*a2)
	fmt.Println(*b)

}
